home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / picedi1a / picedit.frm next >
Text File  |  1999-07-26  |  16KB  |  583 lines

  1. VERSION 5.00
  2. Object = "{3B7C8863-D78F-101B-B9B5-04021C009402}#1.2#0"; "RICHTX32.OCX"
  3. Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0"; "COMDLG32.OCX"
  4. Begin VB.Form frmPicEdit 
  5.    AutoRedraw      =   -1  'True
  6.    BackColor       =   &H80000004&
  7.    Caption         =   "Overlay text on picture"
  8.    ClientHeight    =   5205
  9.    ClientLeft      =   1515
  10.    ClientTop       =   3030
  11.    ClientWidth     =   5010
  12.    ClipControls    =   0   'False
  13.    BeginProperty Font 
  14.       Name            =   "MS Sans Serif"
  15.       Size            =   8.25
  16.       Charset         =   0
  17.       Weight          =   700
  18.       Underline       =   0   'False
  19.       Italic          =   0   'False
  20.       Strikethrough   =   0   'False
  21.    EndProperty
  22.    Icon            =   "PicEdit.frx":0000
  23.    LinkTopic       =   "Form1"
  24.    LockControls    =   -1  'True
  25.    OLEDropMode     =   1  'Manual
  26.    ScaleHeight     =   5205
  27.    ScaleWidth      =   5010
  28.    Begin MSComDlg.CommonDialog CommonDialog1 
  29.       Left            =   4080
  30.       Top             =   120
  31.       _ExtentX        =   847
  32.       _ExtentY        =   847
  33.       _Version        =   393216
  34.    End
  35.    Begin VB.CommandButton CmdOverlayText 
  36.       Height          =   405
  37.       Left            =   810
  38.       Picture         =   "PicEdit.frx":000C
  39.       Style           =   1  'Graphical
  40.       TabIndex        =   11
  41.       ToolTipText     =   "Proceed overlay"
  42.       Top             =   180
  43.       Visible         =   0   'False
  44.       Width           =   405
  45.    End
  46.    Begin VB.CommandButton cmdTextFont 
  47.       Height          =   405
  48.       Left            =   1440
  49.       Picture         =   "PicEdit.frx":010E
  50.       Style           =   1  'Graphical
  51.       TabIndex        =   1
  52.       ToolTipText     =   "Select text font"
  53.       Top             =   180
  54.       Width           =   405
  55.    End
  56.    Begin VB.CommandButton cmdTextColor 
  57.       Height          =   405
  58.       Left            =   2070
  59.       Picture         =   "PicEdit.frx":0908
  60.       Style           =   1  'Graphical
  61.       TabIndex        =   2
  62.       ToolTipText     =   "Select text color"
  63.       Top             =   180
  64.       Width           =   405
  65.    End
  66.    Begin VB.CommandButton cmdInputText 
  67.       Height          =   405
  68.       Left            =   810
  69.       Picture         =   "PicEdit.frx":0F72
  70.       Style           =   1  'Graphical
  71.       TabIndex        =   3
  72.       ToolTipText     =   "Input text"
  73.       Top             =   180
  74.       Width           =   405
  75.    End
  76.    Begin VB.CommandButton cmdClose 
  77.       Height          =   405
  78.       Left            =   3360
  79.       Picture         =   "PicEdit.frx":1074
  80.       Style           =   1  'Graphical
  81.       TabIndex        =   5
  82.       ToolTipText     =   "Close"
  83.       Top             =   180
  84.       Width           =   405
  85.    End
  86.    Begin VB.CommandButton cmdSave 
  87.       Height          =   405
  88.       Left            =   2730
  89.       Picture         =   "PicEdit.frx":186E
  90.       Style           =   1  'Graphical
  91.       TabIndex        =   4
  92.       ToolTipText     =   "Save"
  93.       Top             =   180
  94.       Width           =   405
  95.    End
  96.    Begin VB.CommandButton cmdOpen 
  97.       Height          =   405
  98.       Left            =   180
  99.       Picture         =   "PicEdit.frx":1ED8
  100.       Style           =   1  'Graphical
  101.       TabIndex        =   0
  102.       ToolTipText     =   "Open graphics file"
  103.       Top             =   180
  104.       Width           =   405
  105.    End
  106.    Begin VB.HScrollBar HScroll1 
  107.       Height          =   345
  108.       Left            =   0
  109.       TabIndex        =   8
  110.       Top             =   6360
  111.       Width           =   10755
  112.    End
  113.    Begin VB.PictureBox PicZ 
  114.       AutoRedraw      =   -1  'True
  115.       BackColor       =   &H80000006&
  116.       Height          =   3135
  117.       Left            =   180
  118.       ScaleHeight     =   205
  119.       ScaleMode       =   3  'Pixel
  120.       ScaleWidth      =   301
  121.       TabIndex        =   6
  122.       Top             =   1800
  123.       Width           =   4575
  124.       Begin RichTextLib.RichTextBox rtbText 
  125.          Height          =   465
  126.          Left            =   120
  127.          TabIndex        =   10
  128.          Top             =   2610
  129.          Visible         =   0   'False
  130.          Width           =   1815
  131.          _ExtentX        =   3201
  132.          _ExtentY        =   820
  133.          _Version        =   393217
  134.          BackColor       =   16777215
  135.          BorderStyle     =   0
  136.          Enabled         =   -1  'True
  137.          HideSelection   =   0   'False
  138.          Appearance      =   0
  139.          OLEDragMode     =   0
  140.          OLEDropMode     =   0
  141.          TextRTF         =   $"PicEdit.frx":1FDA
  142.       End
  143.       Begin VB.PictureBox PicX 
  144.          AutoRedraw      =   -1  'True
  145.          BorderStyle     =   0  'None
  146.          Height          =   2085
  147.          Left            =   0
  148.          ScaleHeight     =   2085
  149.          ScaleWidth      =   4035
  150.          TabIndex        =   9
  151.          Top             =   0
  152.          Width           =   4035
  153.       End
  154.       Begin VB.PictureBox PicY 
  155.          AutoRedraw      =   -1  'True
  156.          BackColor       =   &H8000000E&
  157.          BorderStyle     =   0  'None
  158.          Height          =   2580
  159.          Left            =   0
  160.          ScaleHeight     =   2580
  161.          ScaleWidth      =   4500
  162.          TabIndex        =   7
  163.          Top             =   0
  164.          Visible         =   0   'False
  165.          Width           =   4500
  166.       End
  167.    End
  168.    Begin VB.Label Label1 
  169.       Caption         =   "Label1"
  170.       Height          =   855
  171.       Left            =   180
  172.       TabIndex        =   12
  173.       Top             =   750
  174.       Width           =   4545
  175.    End
  176. End
  177. Attribute VB_Name = "frmPicEdit"
  178. Attribute VB_GlobalNameSpace = False
  179. Attribute VB_Creatable = False
  180. Attribute VB_PredeclaredId = True
  181. Attribute VB_Exposed = False
  182. ' PicEdit.frm
  183. '
  184. ' By Herman Liu
  185. '
  186. ' To show how one can place rich text on graphics, in a simple way. (VB seperates
  187. ' rich text and picture as distinctly different types of format, and does not
  188. ' provide functions to allow superimposing the former on the latter). This code
  189. ' enables the user to directly input text (type on screen or through clipboard)
  190. ' at any point on picture, with options of text font size and color.
  191.  
  192. Option Explicit
  193.  
  194. Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
  195.      (ByVal hwnd As Long, ByVal msg As Long, ByVal wp As Long, Ip As Any) As Long
  196.      
  197. Private Type Rect
  198.     Left As Long
  199.     Top As Long
  200.     Right As Long
  201.     Bottom As Long
  202. End Type
  203.  
  204. Private Type CharRange
  205.     firstChar As Long
  206.     lastChar As Long
  207. End Type
  208.  
  209. Private Type FormatRange
  210.     hdc As Long
  211.     hdcTarget As Long
  212.     rectRegion As Rect
  213.     rectPage As Rect
  214.     mCharRange As CharRange
  215. End Type
  216.  
  217. Private Const WM_USER As Long = &H400
  218. Private Const EM_FORMATRANGE As Long = WM_USER + 57
  219. Dim mFormatRange As FormatRange
  220. Dim rectDrawTo As Rect, rectPage As Rect
  221. Dim TextLength As Long, newStartPos As Long
  222. Dim dumpaway As Long
  223. Dim X1 As Single, Y1 As Single, X2 As Single, Y2 As Single
  224. Dim NoPicFlag As Boolean, RegionFlag As Boolean
  225. Dim fso As FileSystemObject
  226.  
  227.  
  228. Private Sub Form_Load()
  229.     Me.ScaleMode = vbTwips
  230.     PicX.ScaleMode = vbTwips
  231.     PicY.ScaleMode = vbTwips
  232.     PicZ.ScaleMode = vbPixels
  233.  
  234.     PicZ.AutoSize = True
  235.     PicX.AutoSize = True
  236.     PicY.AutoSize = True
  237.     
  238.     PicZ.AutoRedraw = True
  239.     PicX.AutoRedraw = True
  240.     PicY.AutoRedraw = True
  241.     
  242.     PicZ.Visible = True
  243.     PicX.Visible = True
  244.     PicY.Visible = False
  245.     
  246.     PicZ.BorderStyle = 1
  247.     PicX.BorderStyle = 0
  248.     PicY.BorderStyle = 0
  249.     
  250.     PicZ.BackColor = &H80000006
  251.     
  252.     PicY.Top = PicX.Top
  253.     PicY.Left = PicX.Left
  254.     
  255.     X1 = 0: Y1 = 0: X2 = 0: Y2 = 0
  256.     
  257.     CmdOverlayText.Visible = False
  258.     Set fso = New FileSystemObject
  259.     rtbText.Visible = False
  260.     If fso.FileExists("\windows\clouds.bmp") Then
  261.          PicX.Picture = LoadPicture("\windows\clouds.bmp", vbCFBitmap)
  262.          NoPicFlag = False
  263.     Else
  264.          NoPicFlag = Tr